/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package myAI;

/**
 * Heuristique utilisée par le joueur noir
 * @author root
 *
 */
public class HeuristiqueNoir implements IHeuristique
{
        public int evaluePlateau(Plateau plateau, int couleur)
        {
                // Adaptation de l'heuristique pour l'évaluation des plateaux ennemis
                if(couleur == Plateau.BLANC)
                {
                        return -this.evaluePlateau(plateau);
                }
                return this.evaluePlateau(plateau);
        }

        protected int evaluePlateau(Plateau plateau)
        {
                // Partie gagnante
                if(plateau.estRoiCapture())
                {
                        return IHeuristique.MAX_VALUE;
                }
                // Partie perdante
                if(plateau.estRoiEnfui())
                {
                        return IHeuristique.MIN_VALUE;
                }

                // Analyse du plateau actuel

                // Calcul des statistiques permettant de calculer l'heuristique
                plateau.calculStatistiquesRoi();
                //System.out.println(plateau.Statistiques());

                return          2 * -plateau.getDiffPions()
                                -       1 * plateau.getNbCoupsPermisRoi()
                                +       3 * plateau.getNbPionsNoirAutourRoi();
        }
}


